package innerclass05;

/*
  匿名对象：  new 类名（参数）
  匿名内部类：
       格式：
          new 父类或 父接口（）{
             //重写父类或父接口方法
          }

     匿名内部类的原理：
        1.自动生成一个内部类 Demo06$1.class
           class Demo06$1 implements Smoke{
            public void smoking() {
                System.out.println("饭后一根烟，赛过活神仙");
            }
           }
        2.会创建Demo06$1的对象
           new Demo06$1();

           //其实相当于 Smoke s=new Demo06$1();
       Smoke s= new Smoke() {
            public void smoking() {
                System.out.println("饭后一根烟，赛过活神仙");
            }
        };

    匿名内部类为了简化创建实现类

 */
public class Demo06 {
    public static void main(String[] args) {
    /*   Smoke s= new Smoke() {//父接口指向实现类对象  Smoke s=new Demo06$1();
                             //遵循多态
            public void smoking() {
                System.out.println("c");
            }
        };
       s.smoking();*/
        new Smoke() {//new Demo06￥1.smoking();
            @Override
            public void smoking() {
                System.out.println("饭后一根烟，赛过活神仙");
            }
        }.smoking();
    }
}
